var SPNAPI = (function(SPNAPI, $,errorHandler,undefined) {

    SPNAPI.settings = {maxpeers:3,prefferedExchange:"",exchange_array:[],"exchanges":""};
    SPNAPI.conf_files={};
    
    SPNAPI.getCheckBoxDetails = function(agent) {

        var extraInfo = '';

        switch (agent) {

            case 'InstantDEX':
                extraInfo = 'Extra Info on this '+agent+' Agent';
                break;
            case 'pangea':
                extraInfo = 'Extra Info on this '+agent+' Agent';
                break;
            case 'Jumblr':
                extraInfo = 'Extra Info on this '+agent+' Agent';
                break;
            case 'MGW':
                extraInfo = 'Extra Info on this '+agent+' Agent';
                break;
            case 'Atomic':
                extraInfo = 'Extra Info on this '+agent+' Agent';
                break;
            case 'PAX':
                extraInfo = 'Extra Info on this '+agent+' Agent';
                break;
            case 'Tradebots':
                extraInfo = 'Extra Info on this '+agent+' Agent';
                break;
              case 'Wallet':
              extraInfo = 'Extra Info on this '+agent+' Agent';
              break;
              case 'Jay':
              extraInfo = 'Extra Info on this '+agent+' Agent';
              break;

        }

        return extraInfo;


    };

    SPNAPI.pageContent.Settings = function () {

        var filehandle_map = {};
        var dirhandle_map = {};
/*
        var rows = '<h3>Agents</h3>';

        $.each(SPNAPI.methods, function (index, value) {

            var this_state;

            $.each(SPNAPI.settings, function (settings_index, settings_value) {

                $.each(settings_value, function (this_setting_index, this_setting_value) {

                    if(this_setting_value.agent == index) {
                        this_state = this_setting_value.state;
                    }

                })

            });

            var checkbox_text = "";
            var checkbox_checked = "";
            var extraDetails = SPNAPI.getCheckBoxDetails(index);
            if(this_state == 'inactive') { checkbox_text = '<i>Disabled</i>'; checkbox_checked = ''; extraDetails = "";  }
            else {
                checkbox_text = 'Enabled'; checkbox_checked = 'checked="checked"';

            }


            rows += '' +
            '<div class="panel panel-default">'+
            '<div class="panel-body">'+
            '<div class="col-xs-6 col-md-6 col-lg-6">'+index+'</div>'+
            '<div class="col-xs-6 col-md-6 col-lg-6" style="text-align: right;">' +
            '<div class="checkbox">'+
            '<label>'+
            '<input type="checkbox" id="'+index+'_checkbox" '+checkbox_checked+' class="agent_checkbox" value="'+index+'" aria-label="Activate/Deactivate Agent"> <span class="checkbox_'+index+'_text">'+checkbox_text+'</span>'+
            '</label>'+
            '</div>' +
            '</div>' +
            '<div class="row"><div class="'+index+'_extra_info col-xs-10 col-md-10 col-lg-10">'+extraDetails+'</div></div>'+
            '</div>'+
            '</div>';

        });


        var filename = "/persistent/SuperNET.conf";
        var access = "w+";
        postCall('fopen', filename, access, function(filename_return, filehandle) {
            filehandle_map[filehandle] = filename_return;
            common.logMessage('File ' + filename_return + ' opened successfully.');

            console.log(filehandle + " and "+filename_return);
        });
        

         var data = "SuperNETconfigurationsdaaaaa TES TEST TEST TEST";
         postCall('fwrite', 0, data, function(filehandle, bytesWritten) {
         var filename = filehandle_map[filehandle];
         common.logMessage('Wrote ' + bytesWritten + ' bytes to file ' + filename +
         '.');
         });


         var filesize = "";
         postCall('stat', filename, function(filename, size) {
         common.logMessage('File ' + filename + ' has size ' + size + '.');
         filesize = size;

         });


         var filehandle = parseInt(filehandle_map, 10);
         var numBytes = parseInt(filesize, 10);
         postCall('fread', 0, 0, function(filehandle, data) {
         var filename = filehandle_map[filehandle];
         common.logMessage('Read "' + data + '" from file ' + filename + '.');
         });
         

        $("#agent_settings").html(rows);
*/
        var config = '<h3>Config</h3>';
        var checkbox_text="";
        var checkbox_checked="";
        
        if(SPNAPI.usePexe === false) { checkbox_text = '<i>Disabled</i>'; checkbox_checked = ''; extraDetails = "";  }
            else {
                checkbox_text = 'Enabled'; checkbox_checked = 'checked="checked"';

            }
        
        config += '' +
            '<div class="panel panel-default">'+
            '<div class="panel-body">'+
            '<div class="col-xs-6 col-md-6 col-lg-6">Pexe</div>'+
            '<div class="col-xs-6 col-md-6 col-lg-6" style="text-align: right;">' +
            '<div class="checkbox">'+
            '<label>'+
            '<input type="checkbox" id="use_pexe_checkbox" class="pexe_checkbox" value="'+checkbox_checked+'" aria-label="Activate/Deactivate Agent"> <span class="pexe_checkbox_text">'+checkbox_text+'</span>'+
            '</label>'+
            '</div>' +
            '</div>' +
            '<div class="row"><div class="pexe_extra_info col-xs-10 col-md-10 col-lg-10">Use pexe or URL requests for communications</div></div>'+
            '</div>'+
            '</div>';
        config += '' +
            '<div class="panel panel-default">'+
            '<div class="panel-body">'+
            '<div class="col-xs-6 col-md-6 col-lg-6">Save default conf files</div>'+
            '<div class="col-xs-6 col-md-6 col-lg-6" style="text-align: right;">' +
            '<div class="checkbox">'+
            '<label>'+
            '<span><button class="btn btn-xs btn-success btn-raised saveConfFiles_onclick"  > Save</button></span>'+
            '</label>'+
            '</div>' +
            '</div>' +
            '<div class="row"><div class="pexe_extra_info col-xs-10 col-md-10 col-lg-10">Save configuration files to chrome APP</div></div>'+
            '</div>'+
            '</div>';
    config += '' +
            '<div class="panel panel-default">'+
            '<div class="panel-body">'+
            '<div class="col-xs-6 col-md-6 col-lg-6">Maximum peers</div>'+
            '<div class="col-xs-6 col-md-6 col-lg-6" style="text-align: right;">' +
            '<div class="checkbox">'+
            '<label>'+
            '<input type="text" id="max_peers_setting" size="4" value="'+SPNAPI.settings.maxpeers+'"/>'+
            '</label>'+
            '</div>' +
            '</div>' +
            '<div class="row"><div class="pexe_extra_info col-xs-10 col-md-10 col-lg-10">Set number of nodes connected directly per coin type</div></div>'+
            '</div>'+
            '</div>';
    config += '' +
            '<div class="panel panel-default">'+
            '<div class="panel-body">'+
            '<div class="col-xs-6 col-md-6 col-lg-6">Delete peer data</div>'+
            '<div class="col-xs-6 col-md-6 col-lg-6" style="text-align: right;">' +
            '<div class="checkbox">'+
            '<label>'+
            '<span><button class="btn btn-xs btn-success btn-raised deletePeertabFile_onclick"  > Delete</button></span>'+
            '</label>'+
            '</div>' +
            '</div>' +
            '<div class="row"><div class="pexe_extra_info col-xs-10 col-md-10 col-lg-10">Delete peer tab data</div></div>'+
            '</div>'+
            '</div>';
    config += '' +
            '<div class="panel panel-default">'+
            '<div class="panel-body">'+
            '<div class="col-xs-6 col-md-6 col-lg-6">Preffered exchange</div>'+
            '<div class="col-xs-6 col-md-6 col-lg-6" style="text-align: right;">' +
            '<div class="checkbox">'+
            '<label>'+
            '<span><select name="setting_exchange" id="setting_exchange"></select></span>'+
            '</label>'+
            '</div>' +
            '</div>' +
            '<div class="row"><div class="pexe_extra_info col-xs-10 col-md-10 col-lg-10">Set preffered exchange setting</div></div>'+
            '</div>'+
            '</div>';
    
    
        $("#advanced_settings").html(config);

        $('#setting_exchange').html(exchanges);
        
            if(SPNAPI.settings.prefferedExchange!==""){
            
    changePrefferedEx("setting_exchange");}

        var pexe_checkbox = $('.pexe_checkbox');

        pexe_checkbox.on("click", function () {
            if(typeof nacl_module !== 'undefined'){
              
                var thisCheck = $(this);
            if (thisCheck.is (':checked'))
            {
                $('.pexe_checkbox_text').html("Enabled");
                SPNAPI.usePexe=true;
                } else {
                SPNAPI.usePexe=false;
                $('.pexe_checkbox_text').html("<i>Disabled</i>");
            }
            }else{
                console.log("Pexe not loaded!");
            }
});

        $("#save_settings").on("click", function () {
            
            //saving max peer setting
            var peers=$('#max_peers_setting').val();
            if(SPNAPI.settings.maxpeers!==peers){
                SPNAPI.settings.maxpeers=peers;
                console.log("maxpeers set to "+SPNAPI.settings.maxpeers);
                sync_peers_to_maxpeers();
            }
            
            /// saving preffered exchange setting
             var ex=$('#setting_exchange').val();
            if(SPNAPI.settings.prefferedExchange!==ex){
                SPNAPI.settings.prefferedExchange=ex;
                 console.log("changed preffered Exchange");
                 }

            /*var agent_checkbox = $('.agent_checkbox');
            var settings = [];

            $.each(agent_checkbox, function(index, value) {

                var agent = value.value;
                console.log(agent);
                var thisCheck = $("#"+agent+"_checkbox");
                var state;
                if (thisCheck.is (':checked'))
                {
                    state = "active";

                } else {
                    state = 'inactive';
                }

                var json = { "agent" : "InstantDEX", "state" : "inactive" };
                json.agent = agent;
                json.state = state;
                settings.push(json);


            });

            //console.log(settings);

            var filename = "/persistent/SuperNET.conf";
            var access = "w";
            postCall('fopen', filename, access, function(filename_return, filehandle) {
                filehandle_map[filehandle] = filename_return;
                common.logMessage('File ' + filename_return + ' opened successfully.');

            });


            //var settings = { "agent" : "InstantDEX", "state" : "active" };
            chrome.storage.sync.set({ "settings" : settings }, function() {
                if (chrome.runtime.error) {
                    console.log("Runtime error.");
                }
            });

            chrome.storage.sync.get("settings", function(items) {
                if (!chrome.runtime.error) {
                    //console.log(items);
                    //document.getElementById("data").innerText = items.data;
                    SPNAPI.settings = items;
                }
            });*/

        });

    };

    return SPNAPI;
}(SPNAPI || {}, jQuery,errorHandler));